package com.javarush.test.level19.lesson10.home02;

/* Самый богатый
В метод main первым параметром приходит имя файла.
В этом файле каждая строка имеет следующий вид:
имя значение
где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом

Для каждого имени посчитать сумму всех его значений
Вывести в консоль имена, у которых максимальная сумма
Имена разделять пробелом либо выводить с новой строки
Закрыть потоки

Пример входного файла:
Петров 0.501
Иванов 1.35
Петров 0.85

Пример вывода:
Петров
*/

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Map;
import java.util.TreeMap;

public class Solution {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(args[0]));
            TreeMap<String, Double> map = new TreeMap<>();
            Map.Entry< String, Double > maxEntry = null;
            String s = "";
            while (!((s = reader.readLine()) == null)) {
                String[] str = s.split(" ");
                if (map.containsKey(str[0])) {
                    Double a = map.get(str[0]);
                    a = a + Double.parseDouble(str[1]);
                    map.put(str[0], a);
                } else map.put(str[0], Double.parseDouble(str[1]));

            }
            for (Map.Entry< String, Double > entry : map.entrySet())
            {
                if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0)
                {
                    maxEntry = entry;
                }
            }
            System.out.print(maxEntry.getKey());
            reader.close();
        }
        catch(Exception e){}
    }
}
